package la.iok.hzsvn.lewin.movie.shopmovie.model;

import java.util.Date;
import java.util.Objects;

public class PlayerVo {
    private Long id;
    /**
     * 加入的拼车id.同一个用户，只能加入一个在拼车中的拼车
     */
    private Long carpoolId;
    /**
     * 拼车标题
     */
    private String carpoolTitle;
    /**
     * 玩家的id
     */
    private Long userId;
    /**
     * 玩家昵称
     */
    private String userNickname;
    /**
     * 玩家手机号（加密）
     */
    private String userPhoneNumber;
    /**
     * 引导者id，一般是客服引导玩家拼车
     */
    private Long guideId;
    /**
     * 引导服务人员昵称
     */
    private String guideNickname;
    /**
     * 引导服务人员手机号（加密）
     */
    private String guidePhoneNumber;
    /**
     * 玩家归属的用户id。可能的归属用户：客服、DM、店长。默认为引导玩家加入拼车的人，一般是客服
     */
    private Long belongId;
    /**
     * 玩家归属人员昵称
     */
    private String belongNickname;
    /**
     * 玩家归属人员手机号（加密）
     */
    private String belongPhoneNumber;
    /**
     * 玩家加入拼车的时间
     */
    private Date joinTime;
    /**
     * 玩家类型。0：正常，1：线下玩家。默认为0
     */
    private Integer type;
    /**
     * 玩家备注信息
     */
    private String remark;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getCarpoolId() {
        return carpoolId;
    }

    public void setCarpoolId(Long carpoolId) {
        this.carpoolId = carpoolId;
    }

    public String getCarpoolTitle() {
        return carpoolTitle;
    }

    public void setCarpoolTitle(String carpoolTitle) {
        this.carpoolTitle = carpoolTitle;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public String getUserNickname() {
        return userNickname;
    }

    public void setUserNickname(String userNickname) {
        this.userNickname = userNickname;
    }

    public String getUserPhoneNumber() {
        return userPhoneNumber;
    }

    public void setUserPhoneNumber(String userPhoneNumber) {
        this.userPhoneNumber = userPhoneNumber;
    }

    public Long getGuideId() {
        return guideId;
    }

    public void setGuideId(Long guideId) {
        this.guideId = guideId;
    }

    public String getGuideNickname() {
        return guideNickname;
    }

    public void setGuideNickname(String guideNickname) {
        this.guideNickname = guideNickname;
    }

    public String getGuidePhoneNumber() {
        return guidePhoneNumber;
    }

    public void setGuidePhoneNumber(String guidePhoneNumber) {
        this.guidePhoneNumber = guidePhoneNumber;
    }

    public Long getBelongId() {
        return belongId;
    }

    public void setBelongId(Long belongId) {
        this.belongId = belongId;
    }

    public String getBelongNickname() {
        return belongNickname;
    }

    public void setBelongNickname(String belongNickname) {
        this.belongNickname = belongNickname;
    }

    public String getBelongPhoneNumber() {
        return belongPhoneNumber;
    }

    public void setBelongPhoneNumber(String belongPhoneNumber) {
        this.belongPhoneNumber = belongPhoneNumber;
    }

    public Date getJoinTime() {
        return joinTime;
    }

    public void setJoinTime(Date joinTime) {
        this.joinTime = joinTime;
    }

    public Integer getType() {
        return type;
    }

    public void setType(Integer type) {
        this.type = type;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (!(o instanceof PlayerVo)) return false;
        PlayerVo playerVo = (PlayerVo) o;
        return Objects.equals(id, playerVo.id) && Objects.equals(carpoolId, playerVo.carpoolId)
                && Objects.equals(carpoolTitle, playerVo.carpoolTitle) && Objects.equals(userId, playerVo.userId)
                && Objects.equals(userNickname, playerVo.userNickname) && Objects.equals(userPhoneNumber, playerVo.userPhoneNumber)
                && Objects.equals(guideId, playerVo.guideId) && Objects.equals(guideNickname, playerVo.guideNickname)
                && Objects.equals(guidePhoneNumber, playerVo.guidePhoneNumber) && Objects.equals(belongId, playerVo.belongId)
                && Objects.equals(belongNickname, playerVo.belongNickname) && Objects.equals(belongPhoneNumber, playerVo.belongPhoneNumber)
                && Objects.equals(joinTime, playerVo.joinTime) && Objects.equals(type, playerVo.type) && Objects.equals(remark, playerVo.remark);
    }

    @Override
    public int hashCode() {
        return Objects.hash(id, carpoolId, carpoolTitle, userId, userNickname, userPhoneNumber, guideId, guideNickname,
                guidePhoneNumber, belongId, belongNickname, belongPhoneNumber, joinTime, type, remark);
    }

    @Override
    public String toString() {
        return "PlayerVo{" +
                "id=" + id +
                ", carpoolId=" + carpoolId +
                ", carpoolTitle='" + carpoolTitle + '\'' +
                ", userId=" + userId +
                ", userNickname='" + userNickname + '\'' +
                ", userPhoneNumber='" + userPhoneNumber + '\'' +
                ", guideId=" + guideId +
                ", guideNickname='" + guideNickname + '\'' +
                ", guidePhoneNumber='" + guidePhoneNumber + '\'' +
                ", belongId=" + belongId +
                ", belongNickname='" + belongNickname + '\'' +
                ", belongPhoneNumber='" + belongPhoneNumber + '\'' +
                ", joinTime=" + joinTime +
                ", type=" + type +
                ", remark=" + remark +
                '}';
    }
}
